package com.wpf.system.service;

import com.baomidou.mybatisplus.core.metadata.IPage;
import com.wpf.system.entity.Role;
import com.baomidou.mybatisplus.extension.service.IService;
import com.wpf.system.entity.vo.RoleMenuVO;

import java.util.List;

/**
* @author ferna
* @description 针对表【role(用户角色表)】的数据库操作Service
* @createDate 2022-12-15 22:23:41
*/
public interface RoleService extends IService<Role> {

    /**
     * 根据条件获取角色列表
     * @return 角色集合
     */
    IPage<Role> getRoleList(int page, int pageSize, String searchContent);

    /**
     * 修改角色状态
     * @param id 用户ID
     * @return int
     */
    int editRoleStatusById(Long id);

    /**
     * 通过角色ID获取已拥有的权限
     * @param uid 用户ID
     * @param rid 角色ID
     * @return 自定义类型
     */
    RoleMenuVO getRoleMenuListByRid(Long uid, Long rid);

    /**
     * 删除角色
     * @param id 角色id
     * @return 是否删除成功
     */
    Boolean deleteRoleById(Long id);

    /**
     * 根据用户id查询可以给予的角色
     * @param id 用户id
     * @return 角色列表集合
     */
    List<Role> getUserCanGiveRoleByUid(Long id);

}
